Crate async_nats

source ·
Expand description

A Rust async bleeding edge client for the NATS.io ecosystem.

git clone https://github.com/nats-io/nats.rs

NATS.io is a simple, secure and high performance open source messaging system for cloud native applications, IoT messaging, and microservices architectures.

For sync API refer https://crates.io/crates/nats

For more information see https://nats.io/.

Examples

Below you can find some basic examples how to use this library.

For details, refer docs for specific method/struct.

Complete example

use bytes::Bytes;
use futures::StreamExt;

#[tokio::main]
async fn main() -> Result<(), async_nats::Error> {
    let client = async_nats::connect("demo.nats.io").await?;
    let mut subscriber = client.subscribe("messages".into()).await?.take(10);

    for _ in 0..10 {
        client.publish("messages".into(), "data".into()).await?;
    }

    while let Some(message) = subscriber.next().await {
      println!("Received message {:?}", message);
    }

    Ok(())
}

Publish

let client = async_nats::connect("demo.nats.io").await?;

let subject = String::from("foo");
let data = Bytes::from("bar");
for _ in 0..10 {
    client.publish("subject".into(), "data".into()).await?;
}

Subscribe

let client = async_nats::connect("demo.nats.io").await?;

let mut subscriber = client.subscribe("foo".into()).await.unwrap();

while let Some(message) = subscriber.next().await {
    println!("Received message {:?}", message);
}

Re-exports

Modules

Structs

Enums

Traits

  • Capability to convert into a list of NATS server addresses.

Functions

Type Definitions